package com.dhcc.DRGsHosp.web.controller;

import java.util.List;
import java.util.Map;

import org.openkoala.koala.commons.InvokeResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.dhcc.DRGsHosp.facade.MrqDictDetailFacade;
import com.dhcc.DRGsHosp.facade.MrqDictRulesFacade;

@Controller("drgsHospMrqDictDetailController20180807")
@RequestMapping("/dictDetailTable")
public class MrqDictDetailController {

	@Autowired
	private MrqDictDetailFacade mrqDictDetailFacade;
	@Autowired
	private MrqDictRulesFacade mrqDictRulesFacade;
	/**
	 *  依据scoreCode值 取得对应的 得分项目数据
	 *  @Author QiaoYiLong
	 *  @param scoreCode
	 *  @return 
	 *  @Date:2018年8月22日上午10:59:24
	 */
	@ResponseBody
	@RequestMapping("/tableInfoJson")
	public InvokeResult getTableInfoJson(@RequestParam String scoreCode){
		Map<String, List<Map<String, Object>>> tableInfoMap = mrqDictDetailFacade.getShowTableInfoByScoreCode(scoreCode);
		return InvokeResult.success(tableInfoMap);
	}
	/**
	 *  依据主键detailCode，修改对应的字段值
	 *  @Author QiaoYiLong
	 *  @param detailCode 主键
	 *  @param fieldCode  字段名
	 *  @param value      字段值
	 *  @return 
	 *  @Date:2018年8月22日上午11:00:25
	 */
	@ResponseBody
	@RequestMapping("/modify")
	public InvokeResult modify(@RequestParam String detailCode,@RequestParam String fieldCode,@RequestParam String value) {
		int count = mrqDictDetailFacade.modifyField(detailCode, fieldCode, value);
		return InvokeResult.success(count);
	}
	/**
	 *  依据得分项目主键detailCode，查找对应的 检查规则 信息
	 *  @Author QiaoYiLong
	 *  @param detailCode  得分项目主键
	 *  @return 
	 *  @Date:2018年8月22日上午11:02:34
	 */
	@ResponseBody
	@RequestMapping("/findRules")
	public InvokeResult findRules(@RequestParam String detailCode) {
		List<Map<String,Object>> list = mrqDictRulesFacade.getFieldsByDetailCode(detailCode);
		return InvokeResult.success(list);
	}
	/**
	 *  更新规则表的值
	 *  @Author QiaoYiLong
	 *  @param ruleCode 规则主键
	 *  @param field    字段名
	 *  @param value    字段值
	 *  @return 
	 *  @Date:2018年8月22日上午11:08:12
	 */
	@ResponseBody
	@RequestMapping("/updateRules")
	public InvokeResult updateRules(@RequestParam String ruleCode,@RequestParam String field,@RequestParam String value) {
		int count = mrqDictRulesFacade.updateField(ruleCode, field, value);
		return InvokeResult.success(count);
	}
	
	/**
	 *  功能描述：将detail_code为detailCode的记录中的valid_flag(是否启用字段)全部修改为value
	 *  @Author QiaoYiLong
	 *  @return sql执行成功修改的数据条数
	 *  @Date:2018年9月17日上午11:42:30
	 */
	@ResponseBody
	@RequestMapping("/updateAll")
	public InvokeResult updateAll(@RequestParam String detailCode,@RequestParam String value) {
		int count = mrqDictRulesFacade.updateAll(detailCode, value);
		return InvokeResult.success(count);
	}
	
	/**
	 *  功能描述： 取得MRQ_DICT_SCORE表的所有大类信息
	 *  @Date:2018年12月26日下午4:21:02
	 */
	@ResponseBody
	@RequestMapping("/getAllMrqDictScore")
	public InvokeResult getAllMrqDictScore() {
		List<Map<String,Object>> list = mrqDictDetailFacade.getAllMrqDictScore();
		return InvokeResult.success(list);
	}
}
